// #include<iostream>
// #include<queue>
// using namespace std;
// int main()
// {
//   int n,k;
//   cin>>n>>k;
//   priority_queue<int,vector<int>,greater<int>>st;
//   for(int i=0;i<n;i++)
//   {
//     int x;
//     cin>>x;
//     st.push(x);
   
//   }
   
//   int ret=0;
//     int count=0;
//   while(ret<=k)
//   {
     
//       int t=st.top();
//       ret+=t;
//       if(ret<=k)
//       count++;
//       st.pop();
//       st.push(t*2);
// //       if(ret>k)
// //       {
// //          cout<<count-1<<endl;  
// //           break;
          
// //       }
 
//   }
   
//     cout<<count;
// }#include <iostream>
// #include<vector>
// using namespace std;

// int main() {
// string str;
// cin>>str;
// vector<int>st;
// long long sum=0;
// for(auto e:str)
// {
// st.push_back(e-'0');
// sum+=(e-'0');
// }
// // for(auto e:st)
// // {
// // cout<<e<<" ";

// // }
// int m=st.size();
// if(sum%2==1){cout<<"No";return 0;}
// vector<int>dp(sum+1);
// sum/=2;

// for(int i=0;i<m;i++)
// {
//   for(int j=sum;j>=st[i];j--)
//   {
//    dp[j]=max(dp[j],dp[j-st[i]]+st[i]);
//   // cout<<dp[j]<<" ";
//   }
//   //cout<<endl;
// }
// // for(int i=0;i<=sum;i++)
// // {cout<<dp[i]<<" ";}
// if(sum==dp[sum])
// {cout<<"Yes";}
// else {
// cout<<"No";
// }



// }
#include<iostream>
using namespace std;
auto test()
{
int a=10;
auto pf=[&a]()
{
  cout<<a<<endl;

};
return pf;
}

int main()
{
  auto pf=test();
  cout<<"................"<<endl;
   pf();



}
#include<iostream>
#include<mutex>
#include<condition_variable>
using namespace std;
int main()
{
    int n = 1;
    mutex mex;
    condition_variable cv;
    thread t1([&]()
        {
            while (n < 100)
            {
                unique_lock<mutex>st(mex);
                if (n % 2 == 0)
                {
                    cv.wait(st);

                }
                cout << "thraed 1:" << n << endl;
                n++;
                cv.notify_one();
            }

        });
    thread t2([&]()
        {
            while (n < 100)
            {
                unique_lock<mutex>st(mex);
                if (n % 2 != 0)
                {
                    cv.wait(st);

                }
                cout << "thraed 2:" << n << endl;
                n++;
                cv.notify_one();
            }

        });


    t1.join();
    t2.join();






}